import win32clipboard as wc
import win32con
import win32api
import time

from translateful import getTrans

rawtext1='apple'
rawtext3='pear'
def getCopyText():
    wc.OpenClipboard()
    copytext = wc.GetClipboardData(win32con.CF_TEXT)
    wc.CloseClipboard()
    return copytext#返回为字节格式



if __name__ == '__main__':
    while(1):
        time.sleep(5)#短暂休眠节省cpu
        rawtext1 = getCopyText()#获取剪贴板文本
        if(rawtext1!=rawtext3):#不查询时跳过重复显示同一个单词
            if len(rawtext1)<=10:#过滤剪贴板的出现长文本的情况
        
        #rawtext1 = getCopyText()
                rawtext2=rawtext1.decode().strip()#双击产生的尾空格情况要去掉(否则查询为失败)
                transtext = getTrans(rawtext2)#翻译并返回
                xryn=win32api.MessageBox(0, transtext, rawtext2, win32con.MB_YESNO)#win32api
                #弹窗显示，使用确定和取消判断是否记录到单词本sang.txt
                if xryn==6:#表示确定，证明这单词有记录的必要
                    with open('sang.txt','a+') as possFile:#打开单词本
                        possFile.write(rawtext2+'\t'+transtext+'\n')#将单词和释义写入，关闭文本
                    
                #print(repr(xryn))
                #print(repr(rawtext2))
                rawtext3=rawtext1#用于上次翻译和下次翻译单词相同比较的跳过
            else:#当字符串长度大于10表明这是来自pdf的字符串，实际上并不一定如果字符串长度
                #例如'mathematica'就会出现报错，这是因为字符串长度大于10，但是strip('\x00')会失败.
                rawtext2=rawtext1.decode().strip('\x00')
                transtext = getTrans(rawtext2)#翻译并返回
                
                xryn=win32api.MessageBox(0, transtext, rawtext2, win32con.MB_YESNO)
                if xryn==6:
                    with open('sang.txt','a+') as possFile:#打开单词本
                        possFile.write(rawtext2+'\t'+transtext+'\n')#写入到文件
                rawtext3=rawtext1#用于下次避免重复判断
                        



#>>> b'mathematica'.decode().strip('\x00')
#'mathematica'
#>>> b'mathematicffffa'.decode().strip('\x00')
#'mathematicffffa'                 
                    
                    
                    
                    
                    
                
                
        #print(repr(rawtext1))    
            
        

